//
// Created by YueChuan on 2023/3/8.
//

#ifndef NETWORKDISK_MAINWINDOW_H
#define NETWORKDISK_MAINWINDOW_H

#include <QWidget>
#include "User.h"
#include "QSqlQuery"
#include <QDebug>
#include <QMessageBox>

QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE

class MainWindow : public QWidget {
Q_OBJECT

public:
    explicit MainWindow(QString &uid, QWidget *parent = nullptr);

    ~MainWindow() override;

    /*
     * 初始化页面主用户的基本信息
     * 包括用户名称，用户上传的文件数，好友数，用户上传的所有文件列表，路径，大小
     */
    void init(int);

    /*
     * 初始化左侧的好友列表
     * 好友列表使用toolbox，其中每个Item都是自定义的UserWidget
     * 好友列表中显示好友的名称，上传文件数，在线状态
     */
    void initFriendList();

    /*
     * 重写关闭窗口事件
     * 当用户点击关闭窗口时，需要将数据库中的password中对应的状态信息更新为0，表示不在线
     */
    void closeEvent(QCloseEvent*) override;

public slots:

    void exitClicked_slot();

    void currentChanged_slot(int index);

private:
    User *thisUser;
    QSqlQuery *query;
    int friendIndex;            // 左侧好友列表中被选中的toolbutton的index
public:
    Ui::MainWindow *ui;

};

#endif //NETWORKDISK_MAINWINDOW_H
